/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package CapaLogica;

import CapaAccesoBD.Conector;
import java.util.ArrayList;
import java.util.Date;

/**
 *
 * @author Elayner
 */
public class MultiEjemplar {
    
        /**
    * Inserta un registro de la galeria en la base de datos
    *
    * @param  pnombre  nombre de la galeria
    * @param  pdireccion direccion de la galeria
    * @param  ptelefono telefono de la galeria
    * @param  pfec_ina fecha de inaguracion
    * @param  pnom_encar nombre del encargado
    * @param  pdimension dimensiones
    * @return   el objeto Galeria
    */
	public  Ejemplar crear(String codigo, String estado, Date fechaIngreso, String condicion,int isbn) 
		throws Exception{
            
		Ejemplar objEjemplar=null;
		String sql;
		sql = "INSERT INTO TEjemplar "+
		"VALUES ("+codigo+", '"+estado+"', '"+fechaIngreso+"','"+condicion+"',"+isbn+");";
		try {
			Conector.getConector().ejecutarSQL(sql);
			objEjemplar = new Ejemplar(codigo,estado,fechaIngreso,condicion,isbn);
		}
		catch (Exception e) {
			throw new Exception (e.getMessage());
		}
		return objEjemplar;
	}
	
            
    /**
    * Borra el registro de una galeria
    *
    * @param  pgaleria  objeto galeria
    */	
	public boolean borrar(Ejemplar objEjemplar) throws 
			java.sql.SQLException,Exception{
                boolean result=false;        
		String sql;
		sql = "DELETE FROM TEjemplar "+
		"WHERE codigo='"+objEjemplar.getCodigo()+"';";
		try {
			Conector.getConector().ejecutarSQL(sql);
                        result=true;
		}
		catch (Exception e) {
			throw new Exception (e.getMessage());
		}
               return result;
	}
        
        
       public  void actualizar(Ejemplar objEjemplar) throws 
			java.sql.SQLException,Exception{
		String sql;
		sql = "UPDATE TEjemplar "+
		"SET estado='"+objEjemplar.getEstado()+"' "+
                ",fechaIngreso='"+objEjemplar.getFechaIngreso()+"' "+
                ",condicion='"+objEjemplar.getCondicion()+"' "+
                ",isbn="+objEjemplar.getIsbn()+                        
		" WHERE codigo=,"+objEjemplar.getCodigo()+",;";
		try {
			Conector.getConector().ejecutarSQL(sql);
		}
		catch (Exception e) {
			throw new Exception (e.getMessage());
		}
	}
    /**
    * Busca una galeria por su nombre 
    * 
    * @param  pnomGaleria  nombre de la galeria
    * @return   galeria
    */	
        public ArrayList<Ejemplar> buscarEjemplarPorLibro(int isbn) throws Exception{
            Ejemplar objEjemplar;
            ArrayList<Ejemplar> listaEjemplares;
            String sql;
            java.sql.ResultSet rs;
            sql = "Select * from TEjemplar where isbn="+isbn+";";
            try{
                rs = Conector.getConector().ejecutarSQL(sql,true);
                    listaEjemplares= new ArrayList<>();
                if (rs.next()) {
                    do{
                         objEjemplar = new Ejemplar (rs.getString("codigo"), rs.getString("estado"), rs.getDate("fechaIngreso"), 
                        rs.getString("condicion"), rs.getInt("isbn"));

                        listaEjemplares.add(objEjemplar);
                    }while (rs.next());
                }
            }catch (Exception e){
                throw new Exception (e.getMessage());
            }
            rs.close();
            
            return listaEjemplares;
        }
        
            /**
    *Busca las coincidencias de las Descriptores con un
    * Descriptor determinado
    *
    * @param  pnomDescriptor  Descriptor de la una Descriptor
    */  
    public Ejemplar buscarPorCodigo(String pcodigo) throws Exception{
        Ejemplar objEjemplar=null;
        String sql;
        java.sql.ResultSet rs;
        sql = "SELECT *" + 
              "FROM TEjemplar " + 
              "WHERE codigo = '"+pcodigo+"';";
        try{

            rs = Conector.getConector().ejecutarSQL(sql,true);
            if(rs.next()){
                        objEjemplar = new Ejemplar (rs.getString("codigo"), rs.getString("estado"), rs.getDate("fechaIngreso"), 
                        rs.getString("condicion"), rs.getInt("isbn"));
            }
        }catch (Exception e){ 
            throw new Exception (e.getMessage());
        }
        rs.close();

        return objEjemplar;
    }
    
}
